STL的vector::resize() 和 vector::reserve()区别和作用详解 您所在的位置:网站首页 Shrink to by区别 STL的vector::resize() 和 vector::reserve()区别和作用详解

STL的vector::resize() 和 vector::reserve()区别和作用详解

2024-07-10 04:25| 来源: 网络整理| 查看: 265

一、概述

现在数组基本都用vector了,很方便,但可能对vector的某些属性还不是很了解。以前只是大概知道reserve和resize是分别干什么的,但是并不了解它们的真正目的是什么,今天仔细回顾了一下,终于弄懂了,现在做个记录。

二、区别和作用 1. resize() 设置有效空间,reserve() 设置总体容量

通俗点说,假如蔡徐坤要开演唱会,地点定在了A体育馆,这个体育馆可容纳 5000 5000 5000人。在演唱会开始前卖票,发现销量不是很好,只卖出去了大概 300 300 300张票,但为了保险起见(避免溢出),在体育馆内放置了500把椅子。从这个例子来看,体育馆的 5000 5000 5000人容量是一开始蔡徐坤用 r e s e r v e ( ) reserve() reserve() 申请的 5000 5000 5000人总容量,放置的 500 500 500把椅子,是他用 r e s i z e ( ) resize() resize() 申请的 500 500 500人有效空间。

这里的 5000 5000 5000对应着 v e c t o r : : c a p a c i t y ( ) vector::capacity() vector::capacity(),而 500 500 500对应着 v e c t o r : : s i z e ( ) vector::size() vector::size()。

用代码来看看是不是这样

#include #include using namespace std; int main() { vector concert; concert.reserve(5000); concert.resize(500); cout vector concert; concert.resize(3000); concert.reserve(300); cout vector concert; concert.reserve(100000); //一开始就申请100000容量 concert.resize(5000); //一开始只放了5000把椅子 auto it = concert.begin(); cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有